package 炫彩基类

import (
	common "gitee.com/go_888/xcgui/xcgui/common"
	"unsafe"
)

// 形状_移除, 从父UI元素或窗口,和父布局对象中移除.
//
// ff:形状_移除
// hShape:句柄
func X形状_移除(句柄 int) {
	xShape_RemoveShape.Call(uintptr(句柄))
}

// 形状_取Z序, 获取形状对象Z序, 成功返回索引值, 否则返回 XC_ID_ERROR.
//
// ff:形状_取Z序
// hShape:句柄
func X形状_取Z序(句柄 int) int32 {
	r, _, _ := xShape_GetZOrder.Call(uintptr(句柄))
	return int32(r)
}

// 形状_重绘, 重绘形状对象.
//
// ff:形状_重绘
// hShape:句柄
func X形状_重绘(句柄 int) {
	xShape_Redraw.Call(uintptr(句柄))
}

// 形状_取宽度, 获取内容宽度.
//
// ff:形状_取宽度
// hShape:句柄
func X形状_取宽度(句柄 int) int32 {
	r, _, _ := xShape_GetWidth.Call(uintptr(句柄))
	return int32(r)
}

// 形状_取高度, 获取内容高度.
//
// ff:形状_取高度
// hShape:句柄
func X形状_取高度(句柄 int) int32 {
	r, _, _ := xShape_GetHeight.Call(uintptr(句柄))
	return int32(r)
}

// 形状_移动位置.
//
//
//
// ff:形状_移动位置
// hShape:句柄
// x:x坐标
// y:y坐标
func X形状_移动位置(句柄 int, x坐标, y坐标 int32) {
	xShape_SetPosition.Call(uintptr(句柄), uintptr(x坐标), uintptr(y坐标))
}

// 形状_取坐标.
//
//
// ff:形状_取坐标
// hShape:句柄
// pRect:返回矩形
func X形状_取坐标(句柄 int, 返回矩形 *X结构_矩形) {
	xShape_GetRect.Call(uintptr(句柄), uintptr(unsafe.Pointer(返回矩形)))
}

// 形状_置坐标.
//
//
// ff:形状_设置坐标
// hShape:句柄
// pRect:矩形
func X形状_设置坐标(句柄 int, 矩形 *X结构_矩形) {
	xShape_SetRect.Call(uintptr(句柄), uintptr(unsafe.Pointer(矩形)))
}

// 形状_置逻辑坐标, 设置元素坐标, 逻辑坐标, 包含滚动视图偏移.
//
//
//
// ff:形状_设置逻辑坐标
// hShape:句柄
// pRect:矩形
// bRedraw:是否重绘
func X形状_设置逻辑坐标(句柄 int, 矩形 *X结构_矩形, 是否重绘 bool) bool {
	r, _, _ := xShape_SetRectLogic.Call(uintptr(句柄), uintptr(unsafe.Pointer(矩形)), common.X布尔值到uintptr(是否重绘))
	return r != 0
}

// 形状_取逻辑坐标, 获取元素坐标, 逻辑坐标, 包含滚动视图偏移.
//
//
// ff:形状_取逻辑坐标
// hShape:句柄
// pRect:矩形
func X形状_取逻辑坐标(句柄 int, 矩形 *X结构_矩形) {
	xShape_GetRectLogic.Call(uintptr(句柄), uintptr(unsafe.Pointer(矩形)))
}

// 形状_取基于窗口客户区坐标, 基于窗口客户区坐标.
//
//
// ff:形状_取基于窗口客户区坐标
// hShape:句柄
// pRect:矩形
func X形状_取基于窗口客户区坐标(句柄 int, 矩形 *X结构_矩形) {
	xShape_GetWndClientRect.Call(uintptr(句柄), uintptr(unsafe.Pointer(矩形)))
}

// 形状_取内容大小 ,仅计算有效内容, 填充父, 权重依赖父级所以无法计算.
//
//
// ff:形状_取内容大小
// hShape:句柄
// pSize:返回内容大小
func X形状_取内容大小(句柄 int, 返回内容大小 *X结构_大小) {
	xShape_GetContentSize.Call(uintptr(句柄), uintptr(unsafe.Pointer(返回内容大小)))
}

// 形状_显示布局边界, 是否显示布局边界.
//
//
// ff:形状_显示布局边界
// hShape:句柄
// bShow:是否显示
func X形状_显示布局边界(句柄 int, 是否显示 bool) {
	xShape_ShowLayout.Call(uintptr(句柄), common.X布尔值到uintptr(是否显示))
}

// 形状_调整布局.
//
// ff:形状_调整布局
// hShape:句柄
func X形状_调整布局(句柄 int) {
	xShape_AdjustLayout.Call(uintptr(句柄))
}

// 形状_销毁, 销毁形状对象.
//
// ff:形状_销毁
// hShape:句柄
func X形状_销毁(句柄 int) {
	xShape_Destroy.Call(uintptr(句柄))
}

// 形状_取位置.
//
//
//
// ff:形状_取位置
// hShape:句柄
// pOutX:返回X坐标
// pOutY:返回Y坐标
func X形状_取位置(句柄 int, 返回X坐标, 返回Y坐标 *int32) {
	xShape_GetPosition.Call(uintptr(句柄), uintptr(unsafe.Pointer(返回X坐标)), uintptr(unsafe.Pointer(返回Y坐标)))
}

// 形状_置大小.
//
//
//
// ff:形状_设置大小
// hShape:句柄
// nWidth:宽度
// nHeight:高度
func X形状_设置大小(句柄 int, 宽度, 高度 int32) {
	xShape_SetSize.Call(uintptr(句柄), uintptr(宽度), uintptr(高度))
}

// 形状_取大小.
//
//
//
// ff:形状_取大小
// hShape:句柄
// pOutWidth:返回宽度
// pOutHeight:返回高度
func X形状_取大小(句柄 int, 返回宽度, 返回高度 *int32) {
	xShape_GetSize.Call(uintptr(句柄), uintptr(unsafe.Pointer(返回宽度)), uintptr(unsafe.Pointer(返回高度)))
}

// 形状_置透明度.
//
//
// ff:形状_设置透明度
// hShape:句柄
// alpha:透明度
func X形状_设置透明度(句柄 int, 透明度 byte) {
	xShape_SetAlpha.Call(uintptr(句柄), uintptr(透明度))
}

// 形状_取透明度, 返回透明度.
//
// ff:形状_取透明度
// hShape:句柄
func X形状_取透明度(句柄 int) byte {
	r, _, _ := xShape_GetAlpha.Call(uintptr(句柄))
	return byte(r)
}
